package com.huangkailong.designpattern.composite.lucence;

/**
 * 课程.
 *
 * @author huangkl
 * @since 1.0.0
 */
public interface Course {

    /**
     * 显示信息.
     *
     * @param level 层级
     */
    void showInfo(int level);

    /**
     * 添加课程.
     *
     * @param course {@link Course} 待添加的课程
     * @return true 添加成功, false 添加失败
     */
    default boolean addCourse(Course course) {
        throw new UnsupportedOperationException();
    }

    /**
     * 移除课程.
     *
     * @param course {@link Course}
     * @return true 移除成功, false 移除失败
     */
    default boolean removeCourse(Course course) {
        throw new UnsupportedOperationException();
    }

    /**
     * 获取课程名称.
     *
     * @return 课程名称
     */
    String getCourseName();

    /**
     * 获取课程价格.
     *
     * @return 课程价格
     */
    Double getPrice();
}
